研究内容

塩谷研究室ではコンピュータ・アーキテクチャをはじめとして,言語処理系などのシステム・ソフトウェア,セキュリティやファジングなどに関わる様々な研究を行っています.本ページでは現在行っている研究の一部について簡単に紹介します(これらの研究は,他研究機関や企業等との共同研究を含みます).また,それらをまとめた研究室のポスターはこちらです.

  1. プロセッサ
  2. メモリ
  3. GPU
  4. プログラミング言語処理系
  5. セキュリティ

プロセッサ


  • Out-of-order スーパスカラプロセッサ RSD
    • 近年,オープンな命令セット RISC-V が登場し,急速に普及が進んでいます.我々はこれまでの研究成果をもとに,この RISC-V に対応した高速かつコンパクトな CPU である RSD を開発しています.この RSD はさまざまなアイデアを実装したり評価するための基盤として,研究機関や企業において使用されています.RSD はオープンソースとして開発されており,下記で公開されています.
      https://github.com/rsd-devel
  • 自動運転向けアクセラレータ
    • 自動運転の技術が急速に進むとともに,現在では高度化したアルゴリズムに対応するために非常に高性能なコンピュータが要求されるようになってきています.そのようなコンピュータはとても消費電力が大きいため,実験用車両であればともかく,実用的な車に搭載することは現実的ではありません.そこで,自動運転の処理に特化したコンピュータ・ハードウェアを開発し,それにより大きく消費電力を下げるための研究・開発を企業と共に行っています.
  • 次世代スーパーコンピュータのためのプロセッサ・アーキテクチャ
    • スーパーコンピュータの速度や電力効率を改善するため,最先端のスーパーコンピュータを開発している複数の企業と協力し,次世代のスーパーコンピュータを作るための研究・開発を行っています.
  • カーボンナノチューブを使ったコンピュータ
    • カーボンナノチューブを使用してトランジスタを作ることにより,非常に高速で低消費電力なコンピュータが実現できる可能性があります.そのようなカーボンナノチューブによるトランジスタを使った場合にどのようなコンピュータを作れば良いのかは未知であり,それを模索するための研究をしています.


メモリ


  • 命令/データ・プリフェッチャ
    • メモリのアクセスレイテンシによる速度低下の問題を解決する手法として,プリフェッチがあります.プリフェッチは,プログラムの挙動から将来アクセスされる命令やデータのアドレスを予測し,あらかじめキャッシュに先読みしておくことで性能を向上させる手法です.このプリフェッチのアルゴリズムを競う世界大会が毎年開催されており,近年は我々も研究成果をもとに参加し入賞しています.
  • 計算結果の誤差率を保証した Approximate Memory 上でのアプリケーション高速実行
    • CPU が指数的に高速化しているのと比べメモリアクセスのレイテンシは昔からほぼ一定であり,メモリの相対的な速度低下が問題となっています.そこで Approximate Memory と呼ばれる,データに低確率でエラーが入ることを許す代わりに低レイテンシでのアクセスが可能な新しいメモリ技術を研究しています.特にこの技術をソフトウェアから適切に制御し,計算結果の誤差率をユーザの許容できる閾値に抑えた上でアプリケーションの実行を最大限高速化することを目指しています.


GPU


  • 電力効率を向上させる GPU アーキテクチャ
    • GPU の性能や電力効率の向上を目的とした,新しいアーキテクチャを研究しています.提案する GPU のアーキテクチャはレジスタ上書きが原理的に発生しない新しい独自の命令セットを持っており,この性質を利用して GPU の性能や電力効率を大きく改善することを目指しています.


プログラミング言語処理系


  • STRAIGHT プロセッサ向け最適化コンパイラとバイナリトレースレータ
    • STRAIGHT と呼ぶ新しい命令セットのための最適化コンパイラや RISC-V からのバイナリトランスレータについての研究・開発を行っています.STRAIGHT では一般的なプロセッサとは異なり,オペランドをレジスタ番号ではなく命令間の距離で表します.この特徴により,STRAIGHT では命令間に偽の依存が発生することがなく,非常に低コストで out-of-order 実行を実現できます.この STRAIGHT において高効率なコードを生成するための最適化アルゴリズムなどの研究を行っています.
  • スクリプト言語におけるオブジェクトベースのメモリ圧縮
    • 組み込みデバイスのような環境では使用できるメモリが非常に小さいため,メモリ使用量の大きなスクリプト言語を使うことは一般に困難です.そこで本研究では,ハードウェアに事前に型の情報を渡し認識させることで,オブジェクト同士での差分を考慮したメモリ圧縮を行います.これによって使用メモリ量減らし,非常に小さなデバイスにおいてもスクリプト言語を動作させることを目指しています.
  • トランザクションメモリ
    • マルチスレッドを用いた並列プログラムでは一般に,ロックと呼ばれる機構を用いて共有されるデータへのアクセスを制御します.しかしこのロックを用いた制御はプログラミングが難しかったり,あるいは性能を出すためには非常に技巧的なプログラミングが要求されるなどの問題があります.これに対し,より簡単に高性能を実現できるトランザクショナルメモリと呼ばれる機構を研究しています.ソフトウェアのみで実現されるソフトウェアトランザクショナルメモリから,ハードによるもの,そのハイブリッドまで,さまざまなものを研究しています.


セキュリティ


  • 動的情報フロー追跡による情報漏洩防止手法
    • 様々な個人情報や機密情報がコンピュータ上で扱われるようになり,それらの漏洩による被害が増加しています.こういった情報漏洩を防ぐために動的情報フロー追跡と呼ばれる手法が提案されており,言語処理系のランタイム上などでプログラム実行時の情報の流れを追跡することによって,外部への秘密データの流出や外部からの攻撃を検知します.本研究では「どの程度の大きさの情報が流れたのか」を示す量の概念を導入した新しい追跡方法により,従来手法よりも高精度に情報漏洩や攻撃検知を行う事を目指します.
  • プログラム内の分岐の振る舞いに着目したファジング
    • ファジングはプログラムへの入力を自動で生成してテストする方法であり,プログラム内の状態を入力生成系にフィードバックすることで効率的に未テストの状態をテストしてバグを探すことができます.我々はコンピュータ・アーキテクチャの研究におけるプログラムの挙動に関する知見を生かし,従来にはなかった新しい視点からより効率的にファジングを行う方法を研究しています.
  • CPU に対するファジング
    • CPU のハードウェア設計を対象としたファジングに関する研究も行っています.従来のソフトウェアに対するファジングを応用し,ハードウェア設計を対象とした新しいアルゴリズムを用いることで,効率良く CPU にあるバグや脆弱性を発見することを目指しています.